There are various ways to connect a mobile device to a personal computer or other device. One such way is via a point-to-point connection, such as over USB (Universal Serial Bus). A network connection is more difficult, because mobile devices are not configured with a network card/Ethernet coupling, and wireless connections go through an intermediary such as a wireless router.
However, certain applications such as debuggers are not configured to use point-to-point connections, as they are based upon having an IP (Internet Protocol)-based network connection between devices. Such a network connection relies on its respective device's network stack, which means that concepts such as firewalls, network address translation components, antivirus components and other components usually present in PCs and networks are part of the connection, unlike point-to-point connections.
Further, network connections need to reliably transfer data. Data transfer over point-to-point connections such as USB bulk transfer is not sufficiently reliable.
Past solutions that attempted to communicate IP data over a point-to-point connection such as RNDIS (Remote Network Driver Interface Specification) had compatibility problems, while Serial-DTPT (Desktop Pass-through) was technically complex, slow, and cost ineffective. These solutions also proved to be unreliable on the presence of errors in the transport (e.g., USB errors).